<?php
/**
 * @see ZendX_JQuery_View_Helper_UiWidget
 */
require_once "ZendX/JQuery/View/Helper/UiWidget.php";

/**
 * Помощник вида, реализующий поле выбора макета и добавления/редактирования виджетов
 * 
 * @category Phorm
 * @package JQuery_View_Helper
 * @name /Phorm/JQuery/View/Helper/SelectWidgetsLayout.php
 * @copyright phorm.ru
 * @since 20.11.2011
 * @author vladimir@kachalov.net
 */

class Phorm_JQuery_View_Helper_SelectWidgetsLayout extends ZendX_JQuery_View_Helper_UiWidget {
	
	/**
	 * Рисуем кнопку
	 *
	 * @param string $id Id HTML-элемента
	 * @param string $value Значение элемента
	 * @param array $options Массив опций
	 * @return string
	 * @todo Надо как-то по-другому к кодированию виджетов и хранению в базе подойти
	 */
    
	public function selectWidgetsLayout($id, $value = null, array $options = array()) {
		
		$this->jquery->addJavascriptFile($this->view->BaseUrl().'/ui/js/jquery.json.min.js');
		
		if(!is_null($value)) $options['selected'] = $value;
		
		// !!! Надо как-то по-другому к кодированию виджетов и хранению в базе подойти
		if(isset($options['widgets'])) {
			$js = ',"widgets":{';
			foreach (Zend_Json::decode($options['widgets']) as $key=>$val) $js .= $key . ': [' . implode(',',$val) . '],';
			$js = substr($js,0,-1) . '}';
			unset($options['widgets']);
		} else {
			$js = '';
		}
		
		$js = sprintf('%s = %s("#%s").phormLayout(%s);',
			$this->getJsvar($id),
            ZendX_JQuery_View_Helper_JQuery::getJQueryHandler(),
            $id,
            substr(ZendX_JQuery::encodeJson($options),0,-1) . $js .'}'
        );
		
        $this->jquery->addJavascript('var ' . $this->getJsvar($id) . ';');
		$this->jquery->addOnLoad($js);

	    return '<div id="'.$id.'"></div>';
		
	}
	
	
	public function getJsvar($id) {
		return 'WidgetsLayouts';
		//return 'WidgetsLayouts_' . $id;
	}
	
}